package org.egrit;

import java.awt.Point;
import java.awt.Rectangle;

/**
 * Represents empty grid bounds. 
 * 
 * @author michael
 */
class EmptyGridBounds implements IGridBounds {

    /**
     * Package-private constructor.
     */
    EmptyGridBounds() {}

    @Override
    public boolean isEmpty() {
        return true;
    }

    @Override
    public int getWidth() {
        return 0;
    }

    @Override
    public int getHeight() {
        return 0;
    }

    @Override
    public int getArea() {
        return 0;
    }

    @Override
    public GridBoundsIterator getIterator() {
        return new GridBoundsIterator(this);
    }

    @Override
    public Point getMinCellPos() {
        return new Point();
    }

    @Override
    public Point getMaxCellPos() {
        return new Point();
    }

    @Override
    public int getMinGridX() {
        return 0;
    }

    @Override
    public int getMaxGridX() {
        return 0;
    }

    @Override
    public int getMinGridY() {
        return 0;
    }

    @Override
    public int getMaxGridY() {
        return 0;
    }

    @Override
    public Rectangle getOuterRect() {
        return new Rectangle();
    }

    @Override
    public boolean contains(IGridBounds other) {
        return false;
    }

    @Override
    public boolean containsCell(Point gridPos) {
        return false;
    }

    @Override
    public boolean containsCell(int gridX, int gridY) {
        return false;
    }

    @Override
    public IGridBounds intersection(IGridBounds other) {
        return new EmptyGridBounds();
    }

    @Override
    public IGridBounds intersection(Rectangle rect) {
        return new EmptyGridBounds();
    }

    @Override
    public boolean intersects(IGridBounds other) {
        return false;
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return false;
    }

    @Override
    public String toString() {
        return "GridBounds[empty]";
    }
    
}
